/* Jesse Phillips
 * CSCD 305 -- minor1
 * Compiler: g++
 *
 * This is a complex number calculator. It uses
 * a command line interpreter to preform operations
 * on complex numbers.
 *
 * Usage: ./cpni [option] [file]
 *
 * Complex numbers can be stored into variable which
 * are any lowercase or capital letter. When saving to
 * a variable one will type the variable name fallowed
 * by just the complex number ie a = 5+5i. These variables
 * can then be used in expressions a + b. You can mix variable
 * and complex numbers if the complex number starts with a
 * parenthesis a * (5-5i) or (5+5i - (5-5i).
 * 
 * Interpreter closes upon command 0.
 *
 * There is a flag -i which will instantly run the
 * interpreter.
 *
 * If a file is given, then 26 numbers will be read into the
 * variables a-z or until an improper complex number is given.
 */
#ifndef COMPLEX_DRIVER_H
#define COMPLEX_DRIVER_H

#include <map>
#include <fstream>
using namespace std;

/* Read Complex numbers from a file and store them
 * to user varables.
 */
void file(char *);
/* Looks and feels very much like the python interpreter.
 * All variables are stored to a single charactor.
 */
void interpreter();
void printMenu();
void help();
void menu();
void solve(Complex, int, Complex, ostream&);

enum variables {a, b, c, d, e, f, z};
enum signs {other, add, subtract, multiply, equals, notEquals};

#endif
